import java.util.Arrays;

public class GBT32960Message {
    private static final byte[] START_BIT = new byte[]{0x23, 0x23};
    private CommandType commandType;
    private ResponseTag responseTag;
    private byte[] vin;
    private EncryptionType encryptionType;
    private int length;
    private byte[] data;
    private byte checkSum;

    // 构造函数、getter和setter方法

    public GBT32960Message(CommandType commandType, ResponseTag responseTag, byte[] vin, EncryptionType encryptionType, int length, byte[] data, byte checkSum) {
        this.commandType = commandType;
        this.responseTag = responseTag;
        this.vin = vin;
        this.encryptionType = encryptionType;
        this.length = length;
        this.data = data;
        this.checkSum = checkSum;
    }

    @Override
    public String toString() {
        return "GBT32960Message{" +
                "commandType=" + commandType +
                ", responseTag=" + responseTag +
                ", vin=" + Arrays.toString(vin) +
                ", encryptionType=" + encryptionType +
                ", length=" + length +
                ", data=" + Arrays.toString(data) +
                ", checkSum=" + checkSum +
                '}';
    }

    public static byte[] getStartBit() {
        return START_BIT;
    }

    public CommandType getCommandType() {
        return commandType;
    }

    public ResponseTag getResponseTag() {
        return responseTag;
    }

    public byte[] getVin() {
        return vin;
    }

    public EncryptionType getEncryptionType() {
        return encryptionType;
    }

    public int getLength() {
        return length;
    }

    public byte[] getData() {
        return data;
    }

    public byte getCheckSum() {
        return checkSum;
    }
}
